package java课题设计.工具类;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
//该类用于在用户进行登录和注册操作的时候对数据库进行的数据检索以及提供方法
public class Seek  {
    public static boolean seek(String str) throws IOException {
        BufferedReader reader=new BufferedReader(new FileReader("D:\\aaa\\数据\\登陆数据.txt"));
        String line=null;
        while((line=reader.readLine())!=null) {
            //由于在文本文件中，一行的数据会有一些空格或者别的字符导致使用contains无法正确判断是否有重复用户名
            //所以使用trim方法来去除空格来进行正确的判断
            if (line.trim().contains(str.trim())) return false;
        }
        return true;
    }
    public static String seek2(String str) throws IOException {
        BufferedReader reader=new BufferedReader(new FileReader("D:\\\\aaa\\\\数据\\\\学生数据.txt"));
        String line=null;
        while((line=reader.readLine())!=null) {
            //由于在文本文件中，一行的数据会有一些空格或者别的字符导致使用contains无法正确判断是否有重复用户名
            //所以使用trim方法来去除空格来进行正确的判断
            if (line.trim().contains(str.trim())) return line.trim();
        }
        return null;
    }
    public static boolean seek1(String str) throws IOException {
        BufferedReader reader=new BufferedReader(new FileReader("D:\\\\\\\\aaa\\\\\\\\数据\\\\\\\\学生数据.txt"));
        String line=null;
        while((line=reader.readLine())!=null) {
            //由于在文本文件中，一行的数据会有一些空格或者别的字符导致使用contains无法正确判断是否有重复用户名
            //所以使用trim方法来去除空格来进行正确的判断
            if (line.trim().contains(str.trim())) return false;
        }
        return true;
    }
    public static boolean seek3(String str) throws IOException {
        BufferedReader reader=new BufferedReader(new FileReader("D:\\\\\\\\aaa\\\\\\\\数据\\\\\\\\学生数据.txt"));
        String line=null;
        while((line=reader.readLine())!=null) {
            //由于在文本文件中，一行的数据会有一些空格或者别的字符导致使用contains无法正确判断是否有重复用户名
            //所以使用trim方法来去除空格来进行正确的判断
            line.trim();
            String[] fields =line.split("\t");
            String name = fields[0];
            String sex = fields[1];
            String sid = fields[2];
            //double PEscore = Double.parseDouble(fields[3]);
            //double Javascore = Double.parseDouble(fields[4]);
            //double Mathscore = Double.parseDouble(fields[5]);
            String birthDate = fields[6];
            if(sid.equals(str)) {reader.close();return false;}
        }
        reader.close();
        return true;
    }
    static int size=0;
    public static void seekSize(String str) throws IOException {
        BufferedReader reader=new BufferedReader(new FileReader("D:\\\\\\\\aaa\\\\\\\\数据\\\\\\\\学生数据.txt"));
        String line=null;
        while((line=reader.readLine())!=null) {
            //由于在文本文件中，一行的数据会有一些空格或者别的字符导致使用contains无法正确判断是否有重复用户名
            //所以使用trim方法来去除空格来进行正确的判断
            line.trim();
            String[] fields =line.split("\t");
            String name = fields[0];
            String sex = fields[1];
            String sid = fields[2];
            //double PEscore = Double.parseDouble(fields[3]);
            //double Javascore = Double.parseDouble(fields[4]);
            //double Mathscore = Double.parseDouble(fields[5]);
            String birthDate = fields[6];
            if(name.equals(str)) {size++;}
        }
        reader.close();
    }
    static int c=0;
    public static boolean seek4(String str) throws IOException {
        BufferedReader reader=new BufferedReader(new FileReader("D:\\\\\\\\aaa\\\\\\\\数据\\\\\\\\学生数据.txt"));
        String line=null;
        while((line=reader.readLine())!=null) {
            //由于在文本文件中，一行的数据会有一些空格或者别的字符导致使用contains无法正确判断是否有重复用户名
            //所以使用trim方法来去除空格来进行正确的判断
            line.trim();
            String[] fields =line.split("\t");
            String name = fields[0];
            String sex = fields[1];
            String sid = fields[2];
            //double PEscore = Double.parseDouble(fields[3]);
            //double Javascore = Double.parseDouble(fields[4]);
            //double Mathscore = Double.parseDouble(fields[5]);
            String birthDate = fields[6];
            if(name.contains(str)) {reader.close();return false;}
        }
        reader.close();
        return true;
    }
    public static List<String> findByName(String name) {
        List<String> results = new ArrayList<>();
        try (BufferedReader br = new BufferedReader(new FileReader("D:\\\\\\\\aaa\\\\\\\\数据\\\\\\\\学生数据.txt"))) {
            String line;
            while ((line = br.readLine()) != null) {
                // 解析每行记录的姓名、学号和分数
                String[] fields = line.split("\t");
                String recordName = fields[0];
                String recordSex = fields[1];
                String recordID = fields[2];
                String recordPEscore = fields[3];
                String recordJavascore = fields[4];
                String recordMathscore = fields[5];
                String recordBirth = fields[2];
 
                // 使用正则表达式进行匹配
                Pattern pattern = Pattern.compile(".*"+name+".*", Pattern.CASE_INSENSITIVE);
                Matcher matcher = pattern.matcher(recordName);
                if (matcher.find()) {
                    // 将符合条件的学生记录添加到结果列表中
                    results.add(String.format("%s\t%s\t%s\t%s\t%s\t%s\t%s", recordName, recordSex,recordID, recordPEscore,recordJavascore,recordMathscore,recordBirth));
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 返回所有符合条件的学生记录
        return results;
    }
    public static int SEEK() throws IOException {
        BufferedReader reader=new BufferedReader(new FileReader("D:\\\\\\\\aaa\\\\\\\\数据\\\\\\\\学生数据.txt"));
        int c=0;
        String line=null;
        while((line=reader.readLine())!=null) {
            c++;
        }
        return c;
    }
}
